package com.ultra.common;

import android.content.Context;
import android.os.Message;

import com.ultra.common.dialog.WaitDialog;
import com.ultra.util.ThreadUtil;

/** 
 * @ClassName: Handle 
 * @Description: 处理线程类
 * @author jiangshidi QQ:82421098 
 * @date 2013-4-14 上午11:39:58 
 *  
 */
public abstract class Handle extends ThreadUtil{
	/** @Fields dialog : 进度动画 */ 
	private WaitDialog dialog;
	/** @Fields msg : 线程消息 */ 
	public Message msg;
	
	/** 
	 * @Description: 加载动画,启动线程
	 * @param @param context   设定文件 
	 * @throws 
	 */
	public Handle(Context context) {
		dialog = new WaitDialog(context, "提示信息", "处理中,请稍后");
		post(super.runnable);
	}

	/**
	 * Title: run
	 * Description:  线程处理及初始化消息
	 * @see com.ultra.util.ThreadUtil#run() 
	 */
	@Override
	public void run() {
		msg = new Message();
		start();
		sendMessage(msg);
	}

	/**
	 * Title: result
	 * Description:  移除动画效果及消息队列,处理线程监听事件
	 * @see com.ultra.util.ThreadUtil#result() 
	 */
	@Override
	public void result() {
		dialog.getDialog().dismiss();
		removeCallbacks(super.runnable);
		finish();
	}
	/** 
	 * @Title: start 
	 * @Description: 线程处理事件
	 * @param     设定文件 
	 * @return void    返回类型 
	 * @throws 
	 */
	public abstract void start();
	/** 
	 * @Title: finish 
	 * @Description: 线程监听事件
	 * @param     设定文件 
	 * @return void    返回类型 
	 * @throws 
	 */
	public abstract void finish();
}